export {}

/**
 函数类型
 - 给函数指定类型，其实是给 参数 和 返回值 指定类型。
 - 两种写法：
   在函数基础上 分别指定 参数和返回值类型
   使用类型别名 同时指定 参数和返回值类型
 */
// 1. 在函数基础上 分别指定 参数和返回值类型
// function fn1(num1: number, num2: number): number {
//   return num1 + num2
// }

// console.log(fn1(100, 200));
// console.log(fn1('100', 200));

// const fn2 = (num1: number, num2: number): number => {
//   return num1 + num2
// }
// console.log(fn2(100, 200));


// 2. 使用类型别名 同时指定 参数和返回值类型
// 通过类似箭头函数形式的语法来为函数添加类型，只适用于 函数表达式
type CustomFn = (num1: number, num2: number) => number

const fn: CustomFn = (num1, num2)=>{
  return num1 + num2
}

// console.log(fn(200, '500'));

